Many modern electronic systems include multi-application microcontrollers that share a memory space between various applications and an operating system. Access restrictions are often assigned to portions of the memory space to prevent corruption or unauthorized copying of instructions or sensitive data (e.g., personal information of a user). Usually, the operating system can assign access rights to different portions of the memory space by segmenting a memory map corresponding to the memory space into several areas with different access right attributes.
Some processors, such as processors with a Von Neumann architecture, feature only read and write access rights. As a result, only a combination of read and write attributes can be programmed to the memory map. Some applications (e.g., smart card applications) need to distinguish between a read access and an execution access. If one of these applications is executed on a processor without an appropriate access right, the application's memory area can be susceptible to code corruption.